// import React, { useState } from 'react';
// import {
//     Card,
//     Form,
//     Input,
//     Switch,
//     Button,
//     message,
//     Select,
//     Space,
//     Divider
// } from 'antd';
// import { useNavigate } from 'react-router-dom';
// import styles from './index.module.css';
// import { algorithmApi, AlgorithmConfigDTO } from '../../../services/api/algorithm';
//
// const { TextArea } = Input;
// const { Option } = Select;
//
// const AlgorithmConfigPage: React.FC = () => {
//     const [form] = Form.useForm();
//     const navigate = useNavigate();
//     const [loading, setLoading] = useState(false);
//
//     // 提交表单
//     const handleSubmit = async (values: AlgorithmConfigDTO) => {
//         try {
//             setLoading(true);
//             console.log('提交的数据:', values);
//
//             const response = await algorithmApi.createAlgorithmConfig(values);
//
//             if (response.data.code === 200 && response.data) {
//                 message.success('创建算法配置成功');
//                 navigate('/algorithm.ts/list'); // 假设有一个算法列表页面
//             } else {
//                 message.error(response.data.message || '创建失败');
//             }
//         } catch (error) {
//             console.error('创建算法配置失败:', error);
//             message.error('创建失败，请重试');
//         } finally {
//             setLoading(false);
//         }
//     };
//
//     return (
//         <div className={styles.container}>
//             <Card title="新增算法配置" bordered={false}>
//                 <Form
//                     form={form}
//                     layout="vertical"
//                     onFinish={handleSubmit}
//                     initialValues={{
//                         caseSensitive: false,
//                         ignoreWhitespace: true,
//                         normalizeText: true,
//                         isActive: 1
//                     }}
//                 >
//                     <Form.Item
//                         label="算法名称"
//                         name="algorithmName"
//                         rules={[{ required: true, message: '请输入算法名称' }]}
//                     >
//                         <Input placeholder="请输入算法名称" maxLength={50} />
//                     </Form.Item>
//
//                     <Form.Item
//                         label="配置名称"
//                         name="name"
//                         rules={[{ required: true, message: '请输入配置名称' }]}
//                     >
//                         <Input placeholder="请输入配置名称" maxLength={50} />
//                     </Form.Item>
//
//                     <Form.Item
//                         label="算法描述"
//                         name="description"
//                     >
//                         <TextArea
//                             placeholder="请输入算法描述"
//                             rows={4}
//                             maxLength={200}
//                             showCount
//                         />
//                     </Form.Item>
//
//                     <Divider>文本处理选项</Divider>
//
//                     <Form.Item
//                         label="区分大小写"
//                         name="caseSensitive"
//                         valuePropName="checked"
//                     >
//                         <Switch />
//                     </Form.Item>
//
//                     <Form.Item
//                         label="忽略空白字符"
//                         name="ignoreWhitespace"
//                         valuePropName="checked"
//                     >
//                         <Switch />
//                     </Form.Item>
//
//                     <Form.Item
//                         label="文本标准化"
//                         name="normalizeText"
//                         valuePropName="checked"
//                     >
//                         <Switch />
//                     </Form.Item>
//
//                     <Form.Item
//                         label="是否启用"
//                         name="isActive"
//                         rules={[{ required: true, message: '请选择是否启用' }]}
//                     >
//                         <Select>
//                             <Option value={1}>启用</Option>
//                             <Option value={0}>禁用</Option>
//                         </Select>
//                     </Form.Item>
//
//                     <Form.Item
//                         label="额外参数"
//                         name="additionalParams"
//                         tooltip="可以配置算法的其他参数，格式为 JSON"
//                     >
//                         <TextArea
//                             placeholder="请输入额外参数（JSON格式）"
//                             rows={4}
//                             onChange={(e) => {
//                                 try {
//                                     if (e.target.value) {
//                                         JSON.parse(e.target.value);
//                                     }
//                                     form.setFields([
//                                         {
//                                             name: 'additionalParams',
//                                             errors: []
//                                         }
//                                     ]);
//                                 } catch (error) {
//                                     form.setFields([
//                                         {
//                                             name: 'additionalParams',
//                                             errors: ['请输入有效的 JSON 格式']
//                                         }
//                                     ]);
//                                 }
//                             }}
//                         />
//                     </Form.Item>
//
//                     <Form.Item>
//                         <Space size="middle">
//                             <Button type="primary" htmlType="submit" loading={loading}>
//                                 提交
//                             </Button>
//                             <Button onClick={() => navigate('/algorithm.ts/list')}>
//                                 取消
//                             </Button>
//                         </Space>
//                     </Form.Item>
//                 </Form>
//             </Card>
//         </div>
//     );
// };
//
// export default AlgorithmConfigPage;
import React, { useState } from 'react';
import {
    Card,
    Form,
    Input,
    Switch,
    Button,
    message,
    Select,
    Space,
    Divider
} from 'antd';
import { useNavigate } from 'react-router-dom';
import styles from './index.module.css';
import {algorithmApi, AlgorithmConfigDTO } from '../../../services/api/algorithm';
import { ALGORITHM_OPTIONS } from '../../../constans/algorithm';

const { TextArea } = Input;
const { Option } = Select;

const AlgorithmConfigPage: React.FC = () => {
    const [form] = Form.useForm();
    const navigate = useNavigate();
    const [loading, setLoading] = useState(false);

    // 提交表单
    const handleSubmit = async (values: AlgorithmConfigDTO) => {
        try {
            setLoading(true);
            console.log('提交的数据:', values);

            const response = await algorithmApi.createAlgorithmConfig(values);

            if (response.data.code === 200 && response.data) {
                message.success('创建算法配置成功');
                navigate('/algorithm/list');
            } else {
                message.error(response.data.message || '创建失败');
            }
        } catch (error) {
            console.error('创建算法配置失败:', error);
            message.error('创建失败，请重试');
        } finally {
            setLoading(false);
        }
    };

    return (
        <div className={styles.container}>
            <Card title="新增算法配置" bordered={false}>
                <Form
                    form={form}
                    layout="vertical"
                    onFinish={handleSubmit}
                    initialValues={{
                        caseSensitive: false,
                        ignoreWhitespace: true,
                        normalizeText: true,
                        isActive: 1
                    }}
                >
                    <Form.Item
                        label="算法名称"
                        name="algorithmName"
                        rules={[{ required: true, message: '请选择算法名称' }]}
                    >
                        <Select placeholder="请选择算法名称">
                            {ALGORITHM_OPTIONS.map(algorithm => (
                                <Option key={algorithm.code} value={algorithm.code}>
                                    {algorithm.name}
                                </Option>
                            ))}
                        </Select>
                    </Form.Item>

                    <Form.Item
                        label="配置名称"
                        name="name"
                        rules={[{ required: true, message: '请输入配置名称' }]}
                    >
                        <Input placeholder="请输入配置名称" maxLength={50} />
                    </Form.Item>

                    <Form.Item
                        label="算法描述"
                        name="description"
                    >
                        <TextArea
                            placeholder="请输入算法描述"
                            rows={4}
                            maxLength={200}
                            showCount
                        />
                    </Form.Item>

                    <Divider>文本处理选项</Divider>

                    <Form.Item
                        label="区分大小写"
                        name="caseSensitive"
                        valuePropName="checked"
                    >
                        <Switch />
                    </Form.Item>

                    <Form.Item
                        label="忽略空白字符"
                        name="ignoreWhitespace"
                        valuePropName="checked"
                    >
                        <Switch />
                    </Form.Item>

                    <Form.Item
                        label="文本标准化"
                        name="normalizeText"
                        valuePropName="checked"
                    >
                        <Switch />
                    </Form.Item>

                    <Form.Item
                        label="是否启用"
                        name="isActive"
                        rules={[{ required: true, message: '请选择是否启用' }]}
                    >
                        <Select>
                            <Option value={1}>启用</Option>
                            <Option value={0}>禁用</Option>
                        </Select>
                    </Form.Item>

                    <Form.Item
                        label="额外参数"
                        name="additionalParams"
                        tooltip="可以配置算法的其他参数，格式为 JSON"
                    >
                        <TextArea
                            placeholder="请输入额外参数（JSON格式）"
                            rows={4}
                            onChange={(e) => {
                                try {
                                    if (e.target.value) {
                                        JSON.parse(e.target.value);
                                        form.setFields([{ name: 'additionalParams', errors: [] }]);
                                    }
                                } catch (error) {
                                    form.setFields([
                                        {
                                            name: 'additionalParams',
                                            errors: ['请输入有效的 JSON 格式']
                                        }
                                    ]);
                                }
                            }}
                        />
                    </Form.Item>

                    <Form.Item>
                        <Space size="middle">
                            <Button type="primary" htmlType="submit" loading={loading}>
                                提交
                            </Button>
                            <Button onClick={() => navigate('/algorithm/list')}>
                                取消
                            </Button>
                        </Space>
                    </Form.Item>
                </Form>
            </Card>
        </div>
    );
};

export default AlgorithmConfigPage;
